package controller;

import java.io.IOException;

import java.util.Collection;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import javax.servlet.annotation.MultipartConfig;
@WebServlet("/ABCServlet")
@MultipartConfig

/**
 * Servlet implementation class ABCServlet
 */

public class ABCServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public ABCServlet() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    // 设置请求编码格式
	    request.setCharacterEncoding("UTF-8");
	    // 设置响应编码格式
	    response.setContentType("text/html;charset=UTF-8");
	    // 获取请求参数
	    String name = request.getParameter("name");
	    // 获取响应输出流
		response.getWriter().append("<h1>你好！" + name + "</h1>");
	    // 获取多个同名参数
	    String[] hobbies = request.getParameterValues("hobby");
	    if (hobbies != null) {
	        response.getWriter().append("<h2>爱好：</h2>");
	        response.getWriter().append("<ul>");
	        for (String hobby : hobbies) {
	            response.getWriter().append("<li>" + hobby + "</li>");
	        }
	        response.getWriter().append("</ul>");
	    }
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	     // 设置请求编码格式
	     request.setCharacterEncoding("UTF-8");
	     // 设置响应编码格式
	     response.setContentType("text/html;charset=UTF-8");
	     // 获取请求参数
	     String name = request.getParameter("name");
	     // 获取响应输出流
	     response.getWriter().append("<h1>你好！" + name + "</h1>");
	     // 获取多个同名参数
	     String[] hobbies = request.getParameterValues("hobby");
	     if (hobbies != null) {
	         response.getWriter().append("<h2>爱好：</h2>");
	         response.getWriter().append("<ul>");
	         for (String hobby : hobbies) {
	             response.getWriter().append("<li>" + hobby + "</li>");
	         }
	         response.getWriter().append("</ul>");
	     }
	     // 设置上传文件的保存路径
	     String uploadPath = "D:\\mmmmmddd\\JavaProject\\post\\resources\\";
	     // 获取上传的文件
	     Collection<Part> parts = request.getParts();
	     response.getWriter().append("<h2>上传的文件有：</h2>");
	     for (Part part : parts) {
	         // 获取上传文件的文件名
	         String fileName = part.getSubmittedFileName();
	         // 确保文件存在
	         if (fileName != null && !fileName.isEmpty()) {
	             // 将文件写入到指定路径
	             part.write(uploadPath + fileName);
	             part.delete();

	             // 返回上传文件成功的信息
	             response.getWriter().append("<p>" + fileName + "</p>");
	         }
	     }
	 }
}
